package com.itheima.service;

import com.itheima.dao.BaseStudentDao;
import com.itheima.dao.OtherStudentDao;
import com.itheima.dao.StudentDao;
import com.itheima.domain.Student;
import com.itheima.factory.Factory;

/*
学生业务类
 */
public class StudentService {
    //private StudentDao studentDao = new StudentDao();
    private BaseStudentDao studentDao = Factory.getStudentDao();

    //service 添加学生方法
    public boolean addStudent(Student student) {
        //创建 dao 对象 调用dao 新增方法

        // boolean flag =studentDao.addStudent(student) ;
        return studentDao.addStudent(student);
    }

    //判断学号是否存在的
    //参数  学号  String  sid   需要所有学生数据(方法内部查询即可)
    //返回值  boolean
    public boolean isExists(String sid) {
        //需要所有学生数据(方法内部查询即可)
        // StudentDao studentDao = new StudentDao();
        Student[] stus = studentDao.findAllStudent();
        //遍历所有学生
        for (int i = 0; i < stus.length; i++) {
            //判断学生的学号和  参数中学号 是否一致  一致 true
            //不一致  下一个 stus[i]
            Student stu = stus[i];
            //如果想要调方法 必须保证不能为null 否则 报NullPointException
            if (stu != null && stu.getSid().equals(sid)) {
                return true;
            }
        }
        //循环结束 都没有  false
        return false;
    }
    //查询所有方法
    //参数  无参数
    //返回值类型 Student[]
    public Student[] findAllStudents(){
        //调用dao查询所有的方法
        Student[] stus = studentDao.findAllStudent();
        //获取结果
        for (int i = 0; i < stus.length; i++) {
            //判断数组是否为空
            //有一个  有
            //stus[i]
            Student stu = stus[i];
            if(stu!=null){
                return stus;
            }
        }
        //一个都没有  null
        return null;
    }

    //service 删除学生
    //参数  String sid
    //返回值  必然成功  void
    public  void  deleteStudent(String sid){
        //调用dao
        studentDao.deleteStudent(sid);
    }

    //service 中的修改
    public void updateStudent(String sid, Student student) {
        studentDao.updateStudent(sid,student);
    }
}
